/**
 * 
 */
package mx.com.asteca.servicio.assembler;

import java.util.Calendar;

import mx.com.asteca.comun.Constantes;
import mx.com.asteca.comun.dto.AlumnoDocumentoDTO;
import mx.com.asteca.comun.dto.DocumentoDTO;
import mx.com.asteca.persistencia.entidades.Alumnos;
import mx.com.asteca.persistencia.entidades.Docs;
import mx.com.asteca.persistencia.entidades.DocsAlumnos;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

/**
 * @author JAMARO
 *
 */
@Component(Constantes.ASSEMBLER_ALUMNO_DOCS)
public class AlumnoDocumentoAssembler extends
		Assembler<AlumnoDocumentoDTO, DocsAlumnos> {
	
	@Autowired
	@Qualifier(Constantes.ASSEMBLER_DOCS)
	private Assembler assemblerDocumento;

	@Override
	public AlumnoDocumentoDTO getDTOTransform(DocsAlumnos mapping) {
		if(mapping == null){
			return null;
		}
		if(mapping.getDocs() == null){
			return null;
		}
		AlumnoDocumentoDTO dto = new AlumnoDocumentoDTO();
		Docs documento = mapping.getDocs();
		DocumentoDTO dtoDoc = (DocumentoDTO) assemblerDocumento.getDTOTransform(documento);
		dto.setDocumento(dtoDoc);
		dto.setId(mapping.getIdDocAlumno());
		dto.setIdAlumno(mapping.getAlumnos().getIdAlumno());
		return dto;
	}

	@Override
	public DocsAlumnos getMappingTransform(AlumnoDocumentoDTO dto) {
		if(dto == null){
			return null;
		}
		if(dto.getDocumento() == null){
			return null;
		}
		DocsAlumnos mapping = new DocsAlumnos();
		Alumnos alumnos = new Alumnos();
		alumnos.setIdAlumno(dto.getIdAlumno());
		mapping.setFechaUpload(Calendar.getInstance().getTime());
		mapping.setAlumnos(alumnos);
		return mapping;
	}

}
